package com.ozo.easy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ozo.easy.common.model.*;
import com.ozo.easy.entity.SysMenu;
import com.ozo.easy.pojo.vo.SysMenuDetailVO;
import com.ozo.easy.pojo.dto.SysMenuSaveDTO;
import com.ozo.easy.pojo.vo.SysMenuVO;
import com.ozo.easy.pojo.dto.SysMenuQueryDTO;

import java.util.List;

/**
 * 菜单 服务类
 *
 * @author ozo
 * @version 1.0
 * @date 2025-02-14 17:13:43
 */
public interface ISysMenuService extends IService<SysMenu> {

    /**
     * 添加菜单
     *
     * @param saveDTO
     */
    void add(SysMenuSaveDTO saveDTO);

    /**
     * 删除菜单
     *
     * @param batchDTO
     */
    void remove(BaseBatchDTO<Long> batchDTO);

    /**
     * 编辑菜单
     *
     * @param saveDTO
     */
    void edit(SysMenuSaveDTO saveDTO);

    /**
     * 菜单列表
     *
     * @param queryDTO
     * @return
     */
    List<SysMenuVO> list(SysMenuQueryDTO queryDTO);

    /**
     * 菜单详情
     *
     * @param id
     * @return
     */
    SysMenuDetailVO detail(Long id);

    /**
     * 启用禁用
     *
     * @param id
     */
    void enable(Long id);

    /**
     * 用户菜单
     *
     * @return
     */
    List<SysMenuVO> listAuth();

}
